/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.util;

import java.util.List;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;

import vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.*;

/**
 * <!-- begin-user-doc -->
 * The <b>Switch</b> for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the <code>caseXXX</code> method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * <!-- end-user-doc -->
 * @see vn.edu.hcmus.fit.se.mdd.mbuid.cfcui.CfcuiPackage
 * @generated
 */
public class CfcuiSwitch<T> {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static CfcuiPackage modelPackage;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CfcuiSwitch() {
		if (modelPackage == null) {
			modelPackage = CfcuiPackage.eINSTANCE;
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	public T doSwitch(EObject theEObject) {
		return doSwitch(theEObject.eClass(), theEObject);
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T doSwitch(EClass theEClass, EObject theEObject) {
		if (theEClass.eContainer() == modelPackage) {
			return doSwitch(theEClass.getClassifierID(), theEObject);
		}
		else {
			List<EClass> eSuperTypes = theEClass.getESuperTypes();
			return
				eSuperTypes.isEmpty() ?
					defaultCase(theEObject) :
					doSwitch(eSuperTypes.get(0), theEObject);
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case CfcuiPackage.USER_INTERFACE: {
				UserInterface userInterface = (UserInterface)theEObject;
				T result = caseUserInterface(userInterface);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.PRESENTATION_COMPONENT: {
				PresentationComponent presentationComponent = (PresentationComponent)theEObject;
				T result = casePresentationComponent(presentationComponent);
				if (result == null) result = caseUserInterface(presentationComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.PRESENTATION_UNIT: {
				PresentationUnit presentationUnit = (PresentationUnit)theEObject;
				T result = casePresentationUnit(presentationUnit);
				if (result == null) result = caseUserInterface(presentationUnit);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.APPLICATION_PRESENTATION_UNIT: {
				ApplicationPresentationUnit applicationPresentationUnit = (ApplicationPresentationUnit)theEObject;
				T result = caseApplicationPresentationUnit(applicationPresentationUnit);
				if (result == null) result = casePresentationUnit(applicationPresentationUnit);
				if (result == null) result = caseUserInterface(applicationPresentationUnit);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.FORM: {
				Form form = (Form)theEObject;
				T result = caseForm(form);
				if (result == null) result = caseApplicationPresentationUnit(form);
				if (result == null) result = caseTextImplement(form);
				if (result == null) result = casePresentationUnit(form);
				if (result == null) result = caseUserInterface(form);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.UI_ELEMENT: {
				UIElement uiElement = (UIElement)theEObject;
				T result = caseUIElement(uiElement);
				if (result == null) result = caseUIComponent(uiElement);
				if (result == null) result = casePresentationComponent(uiElement);
				if (result == null) result = caseUserInterface(uiElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.UI_COMPOSITION: {
				UIComposition uiComposition = (UIComposition)theEObject;
				T result = caseUIComposition(uiComposition);
				if (result == null) result = caseUIComponent(uiComposition);
				if (result == null) result = casePresentationComponent(uiComposition);
				if (result == null) result = caseUserInterface(uiComposition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.BAR_COMPONENT: {
				BarComponent barComponent = (BarComponent)theEObject;
				T result = caseBarComponent(barComponent);
				if (result == null) result = casePresentationComponent(barComponent);
				if (result == null) result = caseUserInterface(barComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.USER_CONTROL: {
				UserControl userControl = (UserControl)theEObject;
				T result = caseUserControl(userControl);
				if (result == null) result = caseUIComposition(userControl);
				if (result == null) result = caseUIComponent(userControl);
				if (result == null) result = casePresentationComponent(userControl);
				if (result == null) result = caseUserInterface(userControl);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.PANEL: {
				Panel panel = (Panel)theEObject;
				T result = casePanel(panel);
				if (result == null) result = caseUIComposition(panel);
				if (result == null) result = caseUIComponent(panel);
				if (result == null) result = casePresentationComponent(panel);
				if (result == null) result = caseUserInterface(panel);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TAB_PAGE: {
				TabPage tabPage = (TabPage)theEObject;
				T result = caseTabPage(tabPage);
				if (result == null) result = caseUIComposition(tabPage);
				if (result == null) result = caseUIComponent(tabPage);
				if (result == null) result = casePresentationComponent(tabPage);
				if (result == null) result = caseUserInterface(tabPage);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TAB_CONTROL: {
				TabControl tabControl = (TabControl)theEObject;
				T result = caseTabControl(tabControl);
				if (result == null) result = caseUIElement(tabControl);
				if (result == null) result = caseUIComponent(tabControl);
				if (result == null) result = casePresentationComponent(tabControl);
				if (result == null) result = caseUserInterface(tabControl);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.STATUS_BAR: {
				StatusBar statusBar = (StatusBar)theEObject;
				T result = caseStatusBar(statusBar);
				if (result == null) result = casePresentationComponent(statusBar);
				if (result == null) result = caseUserInterface(statusBar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TOOL_BAR: {
				ToolBar toolBar = (ToolBar)theEObject;
				T result = caseToolBar(toolBar);
				if (result == null) result = caseBarComponent(toolBar);
				if (result == null) result = casePresentationComponent(toolBar);
				if (result == null) result = caseUserInterface(toolBar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.MENU: {
				Menu menu = (Menu)theEObject;
				T result = caseMenu(menu);
				if (result == null) result = caseBarComponent(menu);
				if (result == null) result = casePresentationComponent(menu);
				if (result == null) result = caseUserInterface(menu);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.MAIN_MENU: {
				MainMenu mainMenu = (MainMenu)theEObject;
				T result = caseMainMenu(mainMenu);
				if (result == null) result = caseMenu(mainMenu);
				if (result == null) result = caseBarComponent(mainMenu);
				if (result == null) result = casePresentationComponent(mainMenu);
				if (result == null) result = caseUserInterface(mainMenu);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.CONTEXT_MENU: {
				ContextMenu contextMenu = (ContextMenu)theEObject;
				T result = caseContextMenu(contextMenu);
				if (result == null) result = caseMenu(contextMenu);
				if (result == null) result = caseBarComponent(contextMenu);
				if (result == null) result = casePresentationComponent(contextMenu);
				if (result == null) result = caseUserInterface(contextMenu);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DATA_COMPONENT: {
				DataComponent dataComponent = (DataComponent)theEObject;
				T result = caseDataComponent(dataComponent);
				if (result == null) result = casePresentationComponent(dataComponent);
				if (result == null) result = caseUserInterface(dataComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DATA_SET: {
				DataSet dataSet = (DataSet)theEObject;
				T result = caseDataSet(dataSet);
				if (result == null) result = caseDataComponent(dataSet);
				if (result == null) result = casePresentationComponent(dataSet);
				if (result == null) result = caseUserInterface(dataSet);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.BINDING_SOURCE: {
				BindingSource bindingSource = (BindingSource)theEObject;
				T result = caseBindingSource(bindingSource);
				if (result == null) result = caseDataComponent(bindingSource);
				if (result == null) result = casePresentationComponent(bindingSource);
				if (result == null) result = caseUserInterface(bindingSource);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.IMAGE_LIST: {
				ImageList imageList = (ImageList)theEObject;
				T result = caseImageList(imageList);
				if (result == null) result = caseDataComponent(imageList);
				if (result == null) result = casePresentationComponent(imageList);
				if (result == null) result = caseUserInterface(imageList);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.BUTTON: {
				Button button = (Button)theEObject;
				T result = caseButton(button);
				if (result == null) result = caseActivator(button);
				if (result == null) result = caseTextImplement(button);
				if (result == null) result = caseComand(button);
				if (result == null) result = caseUIElement(button);
				if (result == null) result = caseUIComponent(button);
				if (result == null) result = casePresentationComponent(button);
				if (result == null) result = caseUserInterface(button);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.CHECK_BOX: {
				CheckBox checkBox = (CheckBox)theEObject;
				T result = caseCheckBox(checkBox);
				if (result == null) result = caseChoice(checkBox);
				if (result == null) result = caseTextImplement(checkBox);
				if (result == null) result = caseUIElement(checkBox);
				if (result == null) result = caseUIComponent(checkBox);
				if (result == null) result = casePresentationComponent(checkBox);
				if (result == null) result = caseUserInterface(checkBox);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.COMBO_BOX: {
				ComboBox comboBox = (ComboBox)theEObject;
				T result = caseComboBox(comboBox);
				if (result == null) result = caseFormattedCollection(comboBox);
				if (result == null) result = caseTextImplement(comboBox);
				if (result == null) result = caseCollection(comboBox);
				if (result == null) result = caseUIElement(comboBox);
				if (result == null) result = caseUIComponent(comboBox);
				if (result == null) result = casePresentationComponent(comboBox);
				if (result == null) result = caseUserInterface(comboBox);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DECORATIVE_ELEMENT: {
				DecorativeElement decorativeElement = (DecorativeElement)theEObject;
				T result = caseDecorativeElement(decorativeElement);
				if (result == null) result = caseUIElement(decorativeElement);
				if (result == null) result = caseUIComponent(decorativeElement);
				if (result == null) result = casePresentationComponent(decorativeElement);
				if (result == null) result = caseUserInterface(decorativeElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.HSCROLL_BAR: {
				HScrollBar hScrollBar = (HScrollBar)theEObject;
				T result = caseHScrollBar(hScrollBar);
				if (result == null) result = caseDecorativeElement(hScrollBar);
				if (result == null) result = caseUIElement(hScrollBar);
				if (result == null) result = caseUIComponent(hScrollBar);
				if (result == null) result = casePresentationComponent(hScrollBar);
				if (result == null) result = caseUserInterface(hScrollBar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.VSCROLL_BAR: {
				VScrollBar vScrollBar = (VScrollBar)theEObject;
				T result = caseVScrollBar(vScrollBar);
				if (result == null) result = caseDecorativeElement(vScrollBar);
				if (result == null) result = caseUIElement(vScrollBar);
				if (result == null) result = caseUIComponent(vScrollBar);
				if (result == null) result = casePresentationComponent(vScrollBar);
				if (result == null) result = caseUserInterface(vScrollBar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.SPLITTER: {
				Splitter splitter = (Splitter)theEObject;
				T result = caseSplitter(splitter);
				if (result == null) result = caseDecorativeElement(splitter);
				if (result == null) result = caseUIElement(splitter);
				if (result == null) result = caseUIComponent(splitter);
				if (result == null) result = casePresentationComponent(splitter);
				if (result == null) result = caseUserInterface(splitter);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.UI_COMPONENT: {
				UIComponent uiComponent = (UIComponent)theEObject;
				T result = caseUIComponent(uiComponent);
				if (result == null) result = casePresentationComponent(uiComponent);
				if (result == null) result = caseUserInterface(uiComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.BAR_ELEMENT: {
				BarElement barElement = (BarElement)theEObject;
				T result = caseBarElement(barElement);
				if (result == null) result = caseUIElement(barElement);
				if (result == null) result = caseUIComponent(barElement);
				if (result == null) result = casePresentationComponent(barElement);
				if (result == null) result = caseUserInterface(barElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.PROGRESS_BAR: {
				ProgressBar progressBar = (ProgressBar)theEObject;
				T result = caseProgressBar(progressBar);
				if (result == null) result = caseBarElement(progressBar);
				if (result == null) result = caseUIElement(progressBar);
				if (result == null) result = caseUIComponent(progressBar);
				if (result == null) result = casePresentationComponent(progressBar);
				if (result == null) result = caseUserInterface(progressBar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TRACK_BAR: {
				TrackBar trackBar = (TrackBar)theEObject;
				T result = caseTrackBar(trackBar);
				if (result == null) result = caseBarElement(trackBar);
				if (result == null) result = caseUIElement(trackBar);
				if (result == null) result = caseUIComponent(trackBar);
				if (result == null) result = casePresentationComponent(trackBar);
				if (result == null) result = caseUserInterface(trackBar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.COMAND: {
				Comand comand = (Comand)theEObject;
				T result = caseComand(comand);
				if (result == null) result = caseUIElement(comand);
				if (result == null) result = caseUIComponent(comand);
				if (result == null) result = casePresentationComponent(comand);
				if (result == null) result = caseUserInterface(comand);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.NAVIGATOR: {
				Navigator navigator = (Navigator)theEObject;
				T result = caseNavigator(navigator);
				if (result == null) result = caseComand(navigator);
				if (result == null) result = caseUIElement(navigator);
				if (result == null) result = caseUIComponent(navigator);
				if (result == null) result = casePresentationComponent(navigator);
				if (result == null) result = caseUserInterface(navigator);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.ACTIVATOR: {
				Activator activator = (Activator)theEObject;
				T result = caseActivator(activator);
				if (result == null) result = caseComand(activator);
				if (result == null) result = caseUIElement(activator);
				if (result == null) result = caseUIComponent(activator);
				if (result == null) result = casePresentationComponent(activator);
				if (result == null) result = caseUserInterface(activator);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.LINK_LABEL: {
				LinkLabel linkLabel = (LinkLabel)theEObject;
				T result = caseLinkLabel(linkLabel);
				if (result == null) result = caseNavigator(linkLabel);
				if (result == null) result = caseTextImplement(linkLabel);
				if (result == null) result = caseComand(linkLabel);
				if (result == null) result = caseUIElement(linkLabel);
				if (result == null) result = caseUIComponent(linkLabel);
				if (result == null) result = casePresentationComponent(linkLabel);
				if (result == null) result = caseUserInterface(linkLabel);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.CHOICE: {
				Choice choice = (Choice)theEObject;
				T result = caseChoice(choice);
				if (result == null) result = caseUIElement(choice);
				if (result == null) result = caseUIComponent(choice);
				if (result == null) result = casePresentationComponent(choice);
				if (result == null) result = caseUserInterface(choice);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.RADIO_BUTTON: {
				RadioButton radioButton = (RadioButton)theEObject;
				T result = caseRadioButton(radioButton);
				if (result == null) result = caseChoice(radioButton);
				if (result == null) result = caseTextImplement(radioButton);
				if (result == null) result = caseUIElement(radioButton);
				if (result == null) result = caseUIComponent(radioButton);
				if (result == null) result = casePresentationComponent(radioButton);
				if (result == null) result = caseUserInterface(radioButton);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DATE_TIME: {
				DateTime dateTime = (DateTime)theEObject;
				T result = caseDateTime(dateTime);
				if (result == null) result = caseUIElement(dateTime);
				if (result == null) result = caseUIComponent(dateTime);
				if (result == null) result = casePresentationComponent(dateTime);
				if (result == null) result = caseUserInterface(dateTime);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DATE_TIME_PICKER: {
				DateTimePicker dateTimePicker = (DateTimePicker)theEObject;
				T result = caseDateTimePicker(dateTimePicker);
				if (result == null) result = caseDateTime(dateTimePicker);
				if (result == null) result = caseUIElement(dateTimePicker);
				if (result == null) result = caseUIComponent(dateTimePicker);
				if (result == null) result = casePresentationComponent(dateTimePicker);
				if (result == null) result = caseUserInterface(dateTimePicker);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.MONTH_CALENDAR: {
				MonthCalendar monthCalendar = (MonthCalendar)theEObject;
				T result = caseMonthCalendar(monthCalendar);
				if (result == null) result = caseDateTime(monthCalendar);
				if (result == null) result = caseUIElement(monthCalendar);
				if (result == null) result = caseUIComponent(monthCalendar);
				if (result == null) result = casePresentationComponent(monthCalendar);
				if (result == null) result = caseUserInterface(monthCalendar);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.FORMATTED_COLLECTION: {
				FormattedCollection formattedCollection = (FormattedCollection)theEObject;
				T result = caseFormattedCollection(formattedCollection);
				if (result == null) result = caseCollection(formattedCollection);
				if (result == null) result = caseUIElement(formattedCollection);
				if (result == null) result = caseUIComponent(formattedCollection);
				if (result == null) result = casePresentationComponent(formattedCollection);
				if (result == null) result = caseUserInterface(formattedCollection);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DATA_GRID_VIEW: {
				DataGridView dataGridView = (DataGridView)theEObject;
				T result = caseDataGridView(dataGridView);
				if (result == null) result = caseFormattedCollection(dataGridView);
				if (result == null) result = caseCollection(dataGridView);
				if (result == null) result = caseUIElement(dataGridView);
				if (result == null) result = caseUIComponent(dataGridView);
				if (result == null) result = casePresentationComponent(dataGridView);
				if (result == null) result = caseUserInterface(dataGridView);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.LIST_BOX: {
				ListBox listBox = (ListBox)theEObject;
				T result = caseListBox(listBox);
				if (result == null) result = caseFormattedCollection(listBox);
				if (result == null) result = caseCollection(listBox);
				if (result == null) result = caseUIElement(listBox);
				if (result == null) result = caseUIComponent(listBox);
				if (result == null) result = casePresentationComponent(listBox);
				if (result == null) result = caseUserInterface(listBox);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.LIST_VIEW: {
				ListView listView = (ListView)theEObject;
				T result = caseListView(listView);
				if (result == null) result = caseFormattedCollection(listView);
				if (result == null) result = caseCollection(listView);
				if (result == null) result = caseUIElement(listView);
				if (result == null) result = caseUIComponent(listView);
				if (result == null) result = casePresentationComponent(listView);
				if (result == null) result = caseUserInterface(listView);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TREE_VIEW: {
				TreeView treeView = (TreeView)theEObject;
				T result = caseTreeView(treeView);
				if (result == null) result = caseFormattedTree(treeView);
				if (result == null) result = caseCollection(treeView);
				if (result == null) result = caseUIElement(treeView);
				if (result == null) result = caseUIComponent(treeView);
				if (result == null) result = casePresentationComponent(treeView);
				if (result == null) result = caseUserInterface(treeView);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DOCUMENT_LIST: {
				DocumentList documentList = (DocumentList)theEObject;
				T result = caseDocumentList(documentList);
				if (result == null) result = caseFormattedTree(documentList);
				if (result == null) result = caseCollection(documentList);
				if (result == null) result = caseUIElement(documentList);
				if (result == null) result = caseUIComponent(documentList);
				if (result == null) result = casePresentationComponent(documentList);
				if (result == null) result = caseUserInterface(documentList);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.COLLECTION: {
				Collection collection = (Collection)theEObject;
				T result = caseCollection(collection);
				if (result == null) result = caseUIElement(collection);
				if (result == null) result = caseUIComponent(collection);
				if (result == null) result = casePresentationComponent(collection);
				if (result == null) result = caseUserInterface(collection);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.DOMAIN_UP_DOWN: {
				DomainUpDown domainUpDown = (DomainUpDown)theEObject;
				T result = caseDomainUpDown(domainUpDown);
				if (result == null) result = caseFormattedCollection(domainUpDown);
				if (result == null) result = caseTextImplement(domainUpDown);
				if (result == null) result = caseCollection(domainUpDown);
				if (result == null) result = caseUIElement(domainUpDown);
				if (result == null) result = caseUIComponent(domainUpDown);
				if (result == null) result = casePresentationComponent(domainUpDown);
				if (result == null) result = caseUserInterface(domainUpDown);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.LABEL: {
				Label label = (Label)theEObject;
				T result = caseLabel(label);
				if (result == null) result = caseUIElement(label);
				if (result == null) result = caseTextImplement(label);
				if (result == null) result = caseUIComponent(label);
				if (result == null) result = casePresentationComponent(label);
				if (result == null) result = caseUserInterface(label);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.PICTURE_BOX: {
				PictureBox pictureBox = (PictureBox)theEObject;
				T result = casePictureBox(pictureBox);
				if (result == null) result = caseUIElement(pictureBox);
				if (result == null) result = caseUIComponent(pictureBox);
				if (result == null) result = casePresentationComponent(pictureBox);
				if (result == null) result = caseUserInterface(pictureBox);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TEXT_BOX: {
				TextBox textBox = (TextBox)theEObject;
				T result = caseTextBox(textBox);
				if (result == null) result = caseUIElement(textBox);
				if (result == null) result = caseTextImplement(textBox);
				if (result == null) result = caseUIComponent(textBox);
				if (result == null) result = casePresentationComponent(textBox);
				if (result == null) result = caseUserInterface(textBox);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.FORMATTED_TREE: {
				FormattedTree formattedTree = (FormattedTree)theEObject;
				T result = caseFormattedTree(formattedTree);
				if (result == null) result = caseCollection(formattedTree);
				if (result == null) result = caseUIElement(formattedTree);
				if (result == null) result = caseUIComponent(formattedTree);
				if (result == null) result = casePresentationComponent(formattedTree);
				if (result == null) result = caseUserInterface(formattedTree);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.NUMERIC_UP_DOWN: {
				NumericUpDown numericUpDown = (NumericUpDown)theEObject;
				T result = caseNumericUpDown(numericUpDown);
				if (result == null) result = caseUIElement(numericUpDown);
				if (result == null) result = caseUIComponent(numericUpDown);
				if (result == null) result = casePresentationComponent(numericUpDown);
				if (result == null) result = caseUserInterface(numericUpDown);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.MENU_ITEM: {
				MenuItem menuItem = (MenuItem)theEObject;
				T result = caseMenuItem(menuItem);
				if (result == null) result = caseActivator(menuItem);
				if (result == null) result = caseTextImplement(menuItem);
				if (result == null) result = caseComand(menuItem);
				if (result == null) result = caseUIElement(menuItem);
				if (result == null) result = caseUIComponent(menuItem);
				if (result == null) result = casePresentationComponent(menuItem);
				if (result == null) result = caseUserInterface(menuItem);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TOOL_BAR_BUTTON: {
				ToolBarButton toolBarButton = (ToolBarButton)theEObject;
				T result = caseToolBarButton(toolBarButton);
				if (result == null) result = caseActivator(toolBarButton);
				if (result == null) result = caseComand(toolBarButton);
				if (result == null) result = caseUIElement(toolBarButton);
				if (result == null) result = caseUIComponent(toolBarButton);
				if (result == null) result = casePresentationComponent(toolBarButton);
				if (result == null) result = caseUserInterface(toolBarButton);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.TEXT_IMPLEMENT: {
				TextImplement textImplement = (TextImplement)theEObject;
				T result = caseTextImplement(textImplement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case CfcuiPackage.PRESENTATION_SYSTEM: {
				PresentationSystem presentationSystem = (PresentationSystem)theEObject;
				T result = casePresentationSystem(presentationSystem);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>User Interface</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>User Interface</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUserInterface(UserInterface object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Presentation Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Presentation Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePresentationComponent(PresentationComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Presentation Unit</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Presentation Unit</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePresentationUnit(PresentationUnit object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Application Presentation Unit</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Application Presentation Unit</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseApplicationPresentationUnit(ApplicationPresentationUnit object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Form</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Form</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseForm(Form object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>UI Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>UI Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUIElement(UIElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>UI Composition</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>UI Composition</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUIComposition(UIComposition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Bar Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Bar Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBarComponent(BarComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>User Control</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>User Control</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUserControl(UserControl object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Panel</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Panel</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePanel(Panel object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Tab Page</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Tab Page</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTabPage(TabPage object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Tab Control</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Tab Control</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTabControl(TabControl object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Status Bar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Status Bar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseStatusBar(StatusBar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Tool Bar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Tool Bar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseToolBar(ToolBar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Menu</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Menu</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMenu(Menu object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Main Menu</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Main Menu</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMainMenu(MainMenu object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Context Menu</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Context Menu</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseContextMenu(ContextMenu object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Data Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Data Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataComponent(DataComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Data Set</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Data Set</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataSet(DataSet object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Binding Source</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Binding Source</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBindingSource(BindingSource object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Image List</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Image List</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseImageList(ImageList object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Button</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Button</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseButton(Button object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Check Box</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Check Box</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCheckBox(CheckBox object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Combo Box</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Combo Box</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseComboBox(ComboBox object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Decorative Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Decorative Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDecorativeElement(DecorativeElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>HScroll Bar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>HScroll Bar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseHScrollBar(HScrollBar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>VScroll Bar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>VScroll Bar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseVScrollBar(VScrollBar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Splitter</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Splitter</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSplitter(Splitter object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>UI Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>UI Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseUIComponent(UIComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Bar Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Bar Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBarElement(BarElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Progress Bar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Progress Bar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseProgressBar(ProgressBar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Track Bar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Track Bar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTrackBar(TrackBar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Comand</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Comand</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseComand(Comand object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Navigator</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Navigator</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseNavigator(Navigator object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Activator</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Activator</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseActivator(Activator object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Link Label</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Link Label</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLinkLabel(LinkLabel object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Choice</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Choice</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseChoice(Choice object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Radio Button</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Radio Button</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRadioButton(RadioButton object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Date Time</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Date Time</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDateTime(DateTime object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Date Time Picker</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Date Time Picker</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDateTimePicker(DateTimePicker object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Month Calendar</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Month Calendar</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMonthCalendar(MonthCalendar object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Formatted Collection</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Formatted Collection</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFormattedCollection(FormattedCollection object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Data Grid View</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Data Grid View</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataGridView(DataGridView object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>List Box</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>List Box</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseListBox(ListBox object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>List View</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>List View</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseListView(ListView object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Tree View</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Tree View</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTreeView(TreeView object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Document List</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Document List</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDocumentList(DocumentList object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Collection</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Collection</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCollection(Collection object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Domain Up Down</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Domain Up Down</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDomainUpDown(DomainUpDown object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Label</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Label</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLabel(Label object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Picture Box</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Picture Box</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePictureBox(PictureBox object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Text Box</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Text Box</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTextBox(TextBox object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Formatted Tree</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Formatted Tree</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFormattedTree(FormattedTree object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Numeric Up Down</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Numeric Up Down</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseNumericUpDown(NumericUpDown object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Menu Item</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Menu Item</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseMenuItem(MenuItem object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Tool Bar Button</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Tool Bar Button</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseToolBarButton(ToolBarButton object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Text Implement</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Text Implement</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTextImplement(TextImplement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Presentation System</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Presentation System</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePresentationSystem(PresentationSystem object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch, but this is the last case anyway.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
	 * @generated
	 */
	public T defaultCase(EObject object) {
		return null;
	}

} //CfcuiSwitch
